Ehh ich weiß nicht genau was du vor hast...
Aber wenn er einen Text in einen Dialog eingibt, steht das in der Variable "inputtext".
Ehh ich weiß nicht genau was du vor hast...
Aber wenn er einen Text in einen Dialog eingibt, steht das in der Variable "inputtext".
Vielleicht sind die 1sen auch ein L ![]()
Und nochmal, weil es irgendwie hier ignoriert wird.
Es ist UNMÖGLICH einen Spieler permanent zu bannen.
Es gibt inzwischen genug Anti-Trashmail Listen welche frei zugänglich sind
...wenn jemand bereit ist seinen Router neu zu starten um auf einem Server zu cheaten...ist er erst recht dazu bereit sich in 5sek (autofill) bei web.de ne mail zu registrieren..und du kannst das sicher nicht erkennen...denn im Endeffekt könnte es ja auch seine echte Mail sein ![]()
...du hast mich nicht verstanden...ich meinte damit, du kannst niemanden global bannen, da jeder einfach seine Ip ändern kann..
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 4
Also...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;
}