Beiträge von T4125Gamer
-
-
Nehmen wir mal den Befehl auseinander, um zu sehen was dort geschieht. Fangen wir ganz vorne an.
if(pInfo[playerid][pAdmin] >= 1)
Hier überprüfen wir (das Script) ob der Spieler ein höheres Adminlevel als 1 besitzt. Wenn das der Fall sein sollte, dann geht es weiter mit dem Code. Wenn es nicht der Fall sein sollte, dann kommt folgendes:
else <--- Wenn der Spieler kein höheres Adminlevel als 1 hat dann kommt die SendClientMessage und der Befehl wird nicht weiter durchgeführt.
{
SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Admin!");
}Wenn der Spieler jetzt doch ein höheres Adminlevel als 1 besitzt, dann kommt die Frage ob er sich in einem Auto befindet. Das überprüft man mit if(IsPlayerInAnyVehicle(playerid))
Wenn das nicht der Fall sein sollte, dann wird nur die Person, also ohne Auto zum BSN geportet.
else <--- Wenn der Spieler sich nicht in einem Auto befindet, dann passiert das untere.
{
SetPlayerPos(playerid, 1212.7854,-885.9028,42.9159);
SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
return 1;
}Ist der Spieler jetzt doch in einem Auto, dann wird der Code der darunter ist fortgeführt. Der sieht ja so aus:
new vid = GetPlayerVehicleID(playerid);
SetPlayerPos(playerid,1212.7854,-885.9028,42.9159);
SetVehiclePos(vid,1212.7854,-885.9028,42.9159);
PutPlayerInVehicle(playerid,vid,0);
SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
Doch was geschieht da jetzt eigentlich. Nunja, zu allererst holen wir uns via new vid = GetPlayerVehicleID(playerid); seine Vehicle ID wo er gerade drinnen sitzt. Es ist völlig egal in welchem Auto er sich befindet, mit diesem Code wird die Vehicle ID bzw. die Auto ID herausgefunden.SetPlayerPos(playerid,1212.7854,-885.9028,42.9159);
SetVehiclePos(vid <--- Hier ist die Vehicle ID wo wir durch GetPlayerVehicleID herausgefunden haben,1212.7854,-885.9028,42.9159);
Hier wird 1. der Spieler an die Koordinaten gesetzt, aber auch das Auto wo er sich drinnen befindet, wird an diesen Punkt gesetzt. Die Koordinaten musst du gegeben falls ändern, wenn du dich woanders hin telepotieren möchtest. Somit währen jetzt Auto sowie Spieler an diesem Ort. Doch nun haben wir hier Folgendes:
PutPlayerInVehicle(playerid,vid,0);
Wenn diese Funktion jetzt nicht drinnen währe, dann würde der Spieler wahrscheinlich im Auto buggen und nicht im Auto sitzen, diese Funktion sorgt dafür das der Spieler in ein Auto gesetzt wird. Aber nicht in irgendeins, nein sondern in das, was mit geportet wurde.
PutPlayerInVehicle(playerid, <--- es setzt den Spieler in das Auto
PutPlayerInVehicle(playerid,vid <---- In welches Auto? In das Auto was mit geportet wurde (deswegen auch am Anfang new vid = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid,vid,0 <---- Auf welche Sitzt im Auto? Auf dein Fahrer sitzt.So und zu guter letzt wird noch eine Message geschrieben, wenn er sich geportet hat
SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
Und der ganze Befehl sieht dann so aus:if(strcmp("/gotobsn", cmdtext, true, 10) == 0)
{
if(pInfo[playerid][pAdmin] >= 1)
{
if (IsPlayerInAnyVehicle(playerid))
{
new vid = GetPlayerVehicleID(playerid);
SetPlayerPos(playerid,1212.7854,-885.9028,42.9159);
SetVehiclePos(vid,1212.7854,-885.9028,42.9159);
PutPlayerInVehicle(playerid,vid,0);
SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
return 1;
}
else
{
SetPlayerPos(playerid, 1212.7854,-885.9028,42.9159);
SendClientMessage(playerid, COLOR_GRAU, "Du hast dich Teleportiert! Nutze dies nicht aus.");
return 1;
}
}
else
{
SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Admin!");
}
return 1;
}Hinweis: Hier sind noch die Passagier sitze aufgelistet (PutPlayerInVehicle da wo der sitzt bestimmt wird)
Zitat0 - Driver
1 - Front Passenger
2 - Back left passenger
3 - Back right passenger
4+ - Passenger seats (coach etc.)So ich hoffe du hast es jetzt richtig verstanden, was es mit diesem Befehl auf sich hat.
MfG: T4125Gamer -
Wenn du ein neues Script anfängst, dann ist bei dem Public OnPlayerCommandText folgendes.
public OnPlayerCommandText(playerid, cmdtext[])
{
return 0;
}So wird das aber sicherlich nicht in deinem Script aussehen, da du ja dort Befehle drinnen hast.
Also scrollst du die Befehle entlang, bis du zu einem Ende kommst. Dort wird das dann so aussehen}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{...So, jetzt ist das so:
} <---- Hier ist die letzte Klammer, wo der Public OnPlayerCommandText geschlossen wird. Darüber müsste ein return 0; sein (sofern du das nicht geändert hast)
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{... -
Zitat
Windows: streamer.dll /sscanf.dll
-
public OnPlayerCommandText(playerid, cmdtext[])
{
//Deine Befehle
return 0; <----- Der hier
}Such einfach mal nach return 0;
-
[16:44:32] Loading plugin: streamer
[16:44:34] Failed.
[16:44:34] Loading plugin: sscanf
[16:44:34] Failed.
[16:44:34] Loaded 0 plugins.Siehste was
Windows: streamer.dll /sscanf.dll
Linux: streamer.so / sscanf.soIn die server.cfg
Windows: streamer sscanf
Linux streamer.so sscanf.so -
Dann zeig jetzt den Serverlog
-
Zitat
Hat jemand download link für plugins die ich brauche?
Zu faul um selbst zu suchen...
-
Zitat
Haste LoS.amx auch im gamemodes Ordner?, weil er findet die nicht.
Wenn die .amx nicht in dem Ordner währe, dann würde der Server nicht starten.Zitat//Kann mir jemand download link für plugins geben bitte danke
-
Zitat von Infrarot
SoL bzw. GF Benötigt die Plugins streamer.dll / .so & sscanf.dll / .so
Welche du Offensichtlich nicht drin hast.
Da hast du die Lösung
-
http://forum.sa-mp.com/showthread.php?t=249226
Downloade dir das und lass es beim starten als Plugin laden
-
Zitat
Poste mal die Zeile.
Zitat\pawno\include\ocmd.inc(36)
Der Fehler ist in dem Include, also neuestes ocmd Include downloaden
-
Poste den Serverlog
-
IPrototypeI hat schon was gutes dazu geschrieben
-
Es sind zu viele IsPlayerInRangeOfPoint in der if Abfrage.
-
return 0;
Das ist ganz unten über der letzten Klammer die den Public schließt
-
public OnPlayerCommandText(playerid, cmdtext[])
{
return 0;
}So sieht das aus. Ändere es so um:
public OnPlayerCommandText(playerid, cmdtext[])
{
return SendClientMessage(playerid,FARBE,"Diesen Befehl gibt es anscheinend nicht. Tippe (dein Befehl für die Command Anzeige) um die Befehle zu sehen");
} -
hast du überhaupt new SpielerInfo[MAX_PLAYERS][Ka was du da hast];
-
Zitat
new strreg[250],
zu
new strreg[250];
-
Serverlog mal anschauen