Hallo miteinander
Da ich etwas Langeweile hatte und da einige in den letzten Tagen probleme mit schranken hatten, dachte ich mir. "hm wiso nicht mal eine Include dafür machen?"
Gedacht und Getan
Mit der Include könnt ihr einfach schranken erstellen ohne Probleme.
Es ist vom Prinzip her wie Objecte erstellen hier mal die Funktionen:
native CreateSchranke(objectid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:DrawDistance = 0.0, Float:Speed = 0.005, bool:hori_verti = false, bool:Left_Right = false);//Schranke wird erstellt
native MoveSchranke(schrankenid);//Schranke öffnen/schließen (Automatisch)
native DestroySchranke(schrankenid);//Schranke löschen
native SetSchranke(schrankenid, bool:openclose);//Schranke manuell öffnen/schließen (true = offen, false=geschlossen)
native IsPlayerInRangeOfSchranke(playerid,schrankenid,Float:range);//Abfrage ob Spieler XX in der nähe der schranke ist
Zu der erklärung was CreateSchranke kann, hier mal ein kleines Muster:
~> objectid = Die ID des Objektes
~> X,Y,Z,rX,rY,rZ = Die coordinaten (Wichtig! alles im geschlossenen zustand angeben!)
~> DrawDistance = Die Distance ab wo man das Object sehen kann
~> Speed = geschwindigkeiten das 0.005 ist Optinal für schranken (bei toren oder Türen könnt ihr es selber entscheiden)
~> hori_verti = false - schranke geht nach oben | true - aufdrehen lassen für Türen etc
~> Left_Right = false - Links | true - rechts (Das drehen)
Ich habe das zum Testen alles so gemacht, daher könnt ihr euch darauf orientieren
//Global
new schranke;//um die ID festzuhalten die die schranke hat
//Funktionen für Schranken
public OnGameModeInit()
{
schranke = CreateSchranke(968, 997.11, 1707.54, 10.62, 0.00, 90.00, 90.00);//schranke wird erstellt
return 1;
}
//Funktionen für Türen oder desgleichen:
public OnGameModeInit()
{
schranke = CreateSchranke(968, 997.11, 1707.54, 10.62, 0.00, 90.00, 90.00, 0.0, 0.01, true, false);//Tür oder Tor wird erstellt
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/schranke", cmdtext, true, 10) == 0)
{
if(!IsPlayerInRangeOfSchranke(playerid,schranke,10.0))return SendClientMessage(playerid,-1,"Hier ist keine schranke");//Abfragen ob er in der nähe von schranke XX ist
MoveSchranke(schranke);//schranke geht auf/zu ganz sanft
//Alternativ
SetSchranke(schranke, true);//schranke öffnet
//Oder
SetSchranke(schranke, false);//schranke schließt
return 1;
}
if (strcmp("/removeschranke", cmdtext, true, 10) == 0)
{
DestroySchranke(schranke);//schranke wird gelöscht
return 1;
}
return 0;
}
Wie ihr sehen könnt ist der Umgang recht einfach und ich hoffe das jeder damit zurechtkommt
Pastebinlink: http://pastebin.com/raw.php?i=PP4ErwhE
Download im Anhang
Sollte einer Fragen zu den System haben oder Probleme, kann er dies hier im Theard melden ich werde mich dann darum kümmern.
Die Include ist so angepasst, das die erkennt ob ein streamer genutzt wird oder nicht
Das limit der schranken liegt bei 300 (das sollte eig vollkommen reichen)
Die Installation macht ihr so:
include downloaden, unter Pawno/include einfügen und oben im Script das einfügen:
(Am besten unter den Streamer wenn ihr den Nutzt
#include B_Schranke
Ich hoffe, das sie euch gefällt und feedback ist immer erwünscht
!! Hinweis !!
Schranken und Türen im Geschlossenen zustand erstellen lassen!