[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
hm wie füge ich das jetze ein bzw frage ob der Spieler in ein car sitzt
-
IsPlayerInAnyVehicle bzw. IsPlayerInVehicle
-
Hallo, kurze Frage:
Kann aus einem Gamemode ein stock aufgerufen werden der in einem Filterscript liegt?
Ich schreibe gerade in einem FilterScript, und wenn auf dem Server jemand einen PayDay hat soll ein stock in meinem FilterScript aufgerufen werden..
Ist das möglich?
-
xSnake:
Füge "tvid" in dem enum von "sInfo" hinzu.
Weise dieser Array beim Verbinden des Spielers den Wert -1 zu.
Die nächste Zuweisung erfolgt unter: sInfo[playerid][tv] = 1; //hier drunter
sInfo[pID][tvid] = playerid; // <-public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(sInfo[playerid][tvid] != -1) PlayerSpectateVehicle(sInfo[pID][tvid], GetPlayerVehicleID(playerid));
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(sInfo[playerid][tvid] != -1) PlayerSpectatePlayer(sInfo[pID][tvid], playerid);
return 1;
}Dementsprechend sollte der Wert wieder auf -1 geändert werden, sofern der Spieler mit dem Beobachten aufhört.
L.G.
Simon2202: Guck dir mal die CallRemoteFunction und Callbacks an.
Bei Fragen kannste dich an mich wenden. -
@heyhoo
Also wenn im gameMode der User einen Payday hat, soll dort dann
CallRemoteFunction("BankPayDay","d",playerid);
Eingefügt werden?
Und ich schreibe dann in mein Filterscript:
forward BankPayDay(const string[]);
public BankPayDay(const string[])
{
return 1;
}Richtig verstanden, was im Wiki steht?
-
Sollte richtig sein
Bis auf den Datenwert im Callback.
Du überlieferst eine Zahl, deklarierst aber einen String.
forward BankPayDay(playerid);
public BankPayDay(playerid)
{
return 1;
}L.G.
-
Ups habs ausm wiki kopiert und vergessen zu öndern! Danke!
-
Beitrag von Almaz ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Dafür benötigst du eine Array (-> boolean) und einen Timer.
Sobald der Spieler erfolgreich etwas in den Chat geschrieben hat, setzt du diese auf true;
Nun startest du einen Timer mit "SetTimerEx" und gibst die Nummer des Spielers mit.
Beim Aufrufen des Callbacks setzt du diesen Wert wieder auf false.
Nun kommt das einfachste:
In deinem Befehl fügst du einfach eine weiter Verzweigung hinzu, welche den Wert der Array überprüft.
(false-> der Spieler kann schreiben; true-> der Spieler kann nicht schreiben)
Bei Fragen melden.L.G.
-
-
wo muss das hin ?
sInfo[playerid][tv] = 1; //hier drunter
sInfo[pID][tvid] = playerid; // <-enum playerInfo{
eingeloggt,
level,
db_id,
alevel,
slevel,
Skin,
fraktion,
rang,
leader,
coleader,
spawnchange,
tutpart,
regstep,
geschlecht,
adminduty,
tv,
tvid
}public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new pID;
if(sInfo[playerid][tvid] != -1) PlayerSpectateVehicle(sInfo[pID][tvid], GetPlayerVehicleID(playerid));
return 1;
}public OnPlayerExitVehicle(playerid, vehicleid)
{
new pID;
if(sInfo[playerid][tvid] != -1) PlayerSpectatePlayer(sInfo[pID][tvid], playerid);
return 1;
}ocmd:tv(playerid,params[])
{
if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");
new pID,string[128];
if(sInfo[playerid][tv] == 0)
{
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, ROT, "/tv [ID]");
{
sInfo[playerid][tv] = 1;
sInfo[pID][tvid] = playerid;
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, pID);
sInfo[playerid][tv] = 1;
format(string,sizeof(string),"Du beobachtest nun %s!",getPlayerName(pID));
SendClientMessage(playerid,GRÜN,string);
}
}
else if(sInfo[playerid][tv] == 1)
{
TogglePlayerSpectating(playerid, 0);
SetCameraBehindPlayer(playerid);
sInfo[playerid][tv] = 0;
SendClientMessage(playerid,GELB,"Du beobachtest den Spieler nun nicht mehr!");
}
return 1;
} -
Wie kann ich in diesem Befehl
ocmd:restartserver(playerid,params[])mehrere namen eintragen sprich einmal restartserver dann rs usw.
ocmd@Anzahl:Befehl1,Befehl2
ocmd@2:restart,rs
-
das problem habe ich gelöst
jetze habe ich eine kleine frage ich habe ein /gate befehl und will abfrage ob der spieler in nicht der fraktion 1 ist und ob der spieler ein admin ist und ob der admin aduty ist
Kaliber:if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");if(IsPlayerInRangeOfPoint(playerid,10,1590.33, -1637.92, 14.83))
{
if(!isPlayerInFrakt(playerid, 1)) return 1;
MoveDynamicObject(LSPDGTor, 1590.35, -1637.92, 8.33, 2.5);
SendClientMessage(playerid,ROT,"Das Tor schließt in 10sec automatisch!");
SetTimerEx("CloseGate", 10000, 0, "d", LSPDGTor);
printf("%s Öffnet das LSPDGTOR)",getPlayerName(playerid));
return 1;
} -
xSnake:
if(IsPlayerInRangeOfPoint(playerid,10,1590.33, -1637.92, 14.83))
{
if(!isPlayerInFrakt(playerid, 1)) return 1;
if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");
MoveDynamicObject(LSPDGTor, 1590.35, -1637.92, 8.33, 2.5);
SendClientMessage(playerid,ROT,"Das Tor schließt in 10sec automatisch!");
SetTimerEx("CloseGate", 10000, 0, "d", LSPDGTor);
printf("%s Öffnet das LSPDGTOR)",getPlayerName(playerid));
return 1;
}Falls du meinst, dass man mindestens eines davon braucht:
if(IsPlayerInRangeOfPoint(playerid,10,1590.33, -1637.92, 14.83))
{
if(!isPlayerInFrakt(playerid, 1) && !isAdmin(playerid,1) && sInfo[playerid][adminduty] == 0) return 1;
MoveDynamicObject(LSPDGTor, 1590.35, -1637.92, 8.33, 2.5);
SendClientMessage(playerid,ROT,"Das Tor schließt in 10sec automatisch!");
SetTimerEx("CloseGate", 10000, 0, "d", LSPDGTor);
printf("%s Öffnet das LSPDGTOR)",getPlayerName(playerid));
return 1;
} -
Beitrag von Corvus ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
-
Dann musst du es so machen:
if(!isPlayerInFrakt(playerid, 1) && sInfo[playerid][adminduty] == 0) return 1; -
Heyoooo,
wieder eine Frage.Da ich derzeitig versuche etwas mit dem Skin auswahl etc. Frage ich euch , wie mache ich dass wenn man ganz am anfang auf den Pfeilen drückt , sodass oben ein GameText kommt wie z.b. "TERRORISTEN" Aber nur bei einem bestimmten skin?
-
Hallo liebe com ich wollte mal fragen ich habe jetze den befehl
/gate das das tor auf geht aber will das man /gate oder tor eingeben muss aber wie ?
ocmd:Mit Freundlichen Grüßen
Snake -
-