...du hast mich nicht verstanden...ich meinte damit, du kannst niemanden global bannen, da jeder einfach seine Ip ändern kann..
Beiträge von Kaliber
-
-
Ist zwar eine nette Idee...aber das bringt nichts...
Der betroffene startet seinen Router neu..und hat eine neue Ip...
Range Ip Ban...kannst du hier auch nicht machen, weil du sonst auf mehreren Servern ganze Gruppen an Leuten bannst...
Somit betrachtet...ist die Idee zwar gut, aber nicht umsetzbar.
Der Sinn von einem Bann bezieht sich ja auf den Account. Ein Spieler erspielt sich ja was auf dem Server...und er sollte sich gut benehmen, weil sonst alles was er sich erspielt hat..verloren geht.
mfg.

-
...An Brainfuck ist gedacht bei der Code Syntax..aber nicht an Pawn oder C / ++ / # ...genial

-
Und wie die funktion wenn er letzendlich ins fahrzeug gesetzt wird?
Naja...so:new seat = GetVehicleFreeSeat(vehicleid);
if(seat == -1) return //Hier ist alles voll
PutPlayerInVehicle(pID,vehicleid,seat); -
Naja..doch das hilft dir weiter:
stock GetVehicleFreeSeat(vehicleid)
{
const max_sitze = 4; //Gehen wir davon aus, dein Fahrzeug hat max 4 sitze:
new bool:free[max_sitze] = {true, ...};
for(new i=GetPlayerPoolSize()+1; --i!=-1;)
{
if(!IsPlayerConnected(i) || !IsPlayerInVehicle(i,vehicleid)) continue;
switch(GetPlayerVehicleSeat(i))
{
case 0: free[0] = false;
case 1: free[1] = false;
case 2: free[2] = false;
case 3: free[3] = false;
default: continue;
}
}
for(new i; i<max_sitze; i++) if(free[i]) return i;
return -1;
}Wenn -1 returnt wird, ist alles voll

PS: Den switch hab ich gemacht, damit kein Memory accsess Fehler auftritt

mfg.

//Edit:

-
Leider nein.
Nimm anstatt der Special Action eine der 2 Animation, entweder://1. Chair sit:
ApplyAnimation(playerid,"BAR","dnk_stndF_loop",4.0,1,0,0,0,0);//2. Ground sit
ApplyAnimation(playerid,"BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0); -
Schreib mal in die erste Zeile:
if(HausID >= sizeof(HausInfo)) return 1;
-
KALIBER, habs mir mal genauer angeschaut...hab grad schwachsinn geschrieben..
Ja...hier siehst es noch deutlicher:new i=5;
printf("%d",i--); //Das ergibt 5
i=5;
printf("%d",--i); //Das ergibt 4Also...wie du siehst...besteht da ein Unterschied

//Edit: So würde meine Funktion funktionieren:
stock GetNearestPlayerAtObject(objectid)
{
new Float:x,Float:y,Float:z,playerid=-1;
GetDynamicObjectPos(objectid,x,y,z);
for(new i=GetPlayerPoolSize()+1,Float:tmp,Float:max=3000.0; --i!=-1;)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
tmp = GetPlayerDistanceFromPoint(i,x,y,z);
if(tmp < max) max=tmp,playerid=i;
}
return playerid;
} -
n man Logisch denkt dann weiß man dass das gleiche bewirkt
Achso ja natürlich:new i=5;
printf ("%d", i--);
printf ("%d",--i);Und oh wunder...es werden unterschiedliche Werte geprintet

-
Dann schreib mal in der Schleife es so:
i--!=-1
-
nd können viel mehr!
Das stimmt so ja nicht...Zum einen sind Actor asynchron...d.h. du kannst ihre Position leider nicht bestimmten und kannst deshalb auch nichts an sie attachen oder gezielt laufen lassen..zum anderen können sie keine Autos oder Züge fahren...und sie können nicht schießen o.ä.
Also NPCs haben durchaus noch Vorteile...auch wenn sie einen Slot belegen

PS: Actors können nur Animationen ausführen...aber auch diese müssen permanent synchronisiert werden.
-
Achso ja klar...du nutzt ja n Streamer

Geh in meine Funktion und verwende GetDynamicObjectPos

-
Printe doch mal...was die funktion zurück gibt

#Handy
-
ich möchte kein hamshi server oder local host
Es gibt auch sowas, dass nennt sich Portfreigabe, dann kann jeder auf deinen Server joinen...einfach Port 7777 mit dem Protokoll UDP freischalten
-
Nimm doch einfach deinen Localhost?

-
Diese Funktion ist so in meinem Script, bräuchte aber sowas ähnliches für Objekte
Nutz am besten das:stock GetNearestPlayerAtObject(objectid)
{
new Float:x,Float:y,Float:z,playerid=-1;
GetObjectPos(objectid,x,y,z);
for(new i=GetPlayerPoolSize(),Float:tmp,Float:max=3000.0; --i!=-1;)
{
tmp = GetPlayerDistanceFromPoint(i,x,y,z);
if(tmp < max) max=tmp,playerid=i;
}
return playerid;
} -
Spoiler anzeigen Hey Rayleigh, hier ist Roger
* Den konnte ich mir nicht verkneifen.
1. Es heißt Skripter...was in der Community bestimmt auch geht wäre Scripter, aber bitte nicht Schripter
2. Du solltest evtl noch schreiben um was für einen Mode es sich handelt...DM/Reallife/Roleplay/whatEva
mfg.

-
-
So hab ich es eingefügt, funktioniert allerdings immer noch nicht
Danke für diese präzise Fehlerdarstellung.Mach doch einfach mal einen print-Debug und schau was nicht geht..bzw wo du einen Fehler gemacht hast

-
Mal geschaut, ob du es evtl umdefiniert hast im GTA Menü?

PS: Du musst 2 / Numpad + drücken...
Schreib es evtl so, dann geht es sicher mit der 2:
#define key(%0) (newkeys & (%0))
if(key(KEY_SUBMISSION) || key(KEY_LOOK_BEHIND) || key(KEY_ANALOG_DOWN))