Überall, auch darüber und so ![]()
Und musst schauen, dass alle switch Statements geschlossen sind ![]()
Überall, auch darüber und so ![]()
Und musst schauen, dass alle switch Statements geschlossen sind ![]()
Schau mal:
if(dialogid == DIALOG_SERVICE1)
{
switch(listitem)
{
case 0:
{
if (pInfo[playerid][pGeld] > 966)
{
new vehicleid = GetPlayerVehicleID(playerid);
SetVehicleHealth(vehicleid, 1000);
SendClientMessage(playerid, -1, "Der Motor wurde erfolgreich raperiert!");
}
else
{
SendClientMessage(playerid,-1,"{bc4343}Du brauchst $966 um den Motor zu raperieren!");
}
}
case 1:
{
if (pInfo[playerid][pGeld] > 3299)
{
new vehicleid = GetPlayerVehicleID(playerid);
SetVehicleHealth(vehicleid, 1250);
SendClientMessage(playerid, -1, "Das Fahrzeug wurde mit der leichten Panzerung ausgestattet!");
}
else
{
SendClientMessage(playerid,-1,"{bc4343}Du brauchst $3299 um dir die leichte Panzerung zu kaufen!");
}
}
}
}
Alles anzeigen
Du musst Klammern setzen bei dem if oben und unten immer ![]()
Kannst du nochmal mehr Code darüber zeigen? ![]()
Genau das dachte ich mir xD
Also du musst hier eine ID noch angeben, z.B.:
#define DIALOG_SERVICE1 1337
Am besten in der Reihenfolge von deinen Dialogen, also der Erste Dialog 0, dann der zweite 1 usw.
Wichtig ist, dass sich die Dialogids nicht überschneiden, also es nicht 2x die 1337 gibt, sonst kommt es natürlich zu Komplikationen.
Schön geht das, wenn man die einfach in ein Enum klatscht, dort werden die nämlich automatisch nummeriert:
Hast du auf den Link mal geklickt?
Hier auch nochmal auf Deutsch: http://wiki.sa-mp.com/wiki/AttachObjectToVehicle_DE
Da ist ja auch ein Beispiel gegeben...
Du musst einfach das Objekt und das Fahrzeug wie dort gezeigt erstellen und dann die Funktion aufrufen, die dann das Objekt an das Fahrzeug klebt an der Position, die du angibst ![]()
DIALOG_SERVICE1
Wie hast n das definiert? ![]()
Das liegt an einem Klammerfehler ![]()
Ich denke in Zeile 592 sollte das eine } sein, anstatt einer { ![]()
Einfach mit [wiki]AttachObjectToVehicle[/wiki] ![]()
Ja, dieses Objekte ist dafür halt nicht geeignet.
Musst du dich wohl mit Alternativen begnügen, wie z.B. 3374, 14873, 14875
oder du packst ein unsichtbares Objekt davor, sodass man die Heu Ballen nicht touchen kann ![]()
Gibt es eine Möglichkeit das Object ( 2901 ) als standhaftes Object zu machen dass man dieses nicht rumschubsen/schießen kann ?
Nein, keine die wirklich gut zu gebrauchen wäre.
Die Frage ist, wofür willst du das denn?!
Das Include was dir Vorgeschlagen wurde, hat damit nichts zu tun.
Das ist nicht so leicht, aber zum Glück gibt es bereits solche Tools:
Okay, dann so:
stock hideIp(const ip[])
{
new p = strfind(ip,".",false,strfind(ip,".",false,1)+1),b,n_ip[17],tmp[4];
strmid(n_ip,ip,0,p+1,sizeof(n_ip));
strmid(tmp,ip,p+1,b=strfind(ip,".",false,p+1),sizeof(tmp));
for(new i=strlen(tmp); i!=0; i--) strcat(n_ip,"x");
strcat(n_ip,"."),tmp="";
strmid(tmp,ip,b+1,strlen(ip),sizeof(tmp));
for(new i=strlen(tmp); i!=0; i--) strcat(n_ip,"x");
return n_ip;
}
Alles anzeigen
Nutzung dann einfach so:
Und wie kann ich erstellen eher gesagt gucken ob er direkt beim Connecten ne Proxy verwendet ?
Hier ein Beispiel Skript: http://forum.sa-mp.com/showthread.php?t=632895
Am besten wäre wenn es wirklich die stellen der IP verdeckt außer die ersten 3-4 Zahlen .
Kannst du hier nochmal genau erklären was du meinst?
Was genau willst du haben...was stört dich an dem was du hast...werde ein bisschen präziser ![]()
ganggebiet
Wie hast du das denn deklariert? ![]()
Und was ist eigentlich wenn der Besitzer 0 ist?
Dann ist der String ja leer und ich glaub einen leeren String zu formatieren macht nicht soviel Sinn, da solltest du eventuell noch ein niemand oder sowas reinpacken ![]()
Also 1. wie gesagt lade mal crashdetect und schaue ob Fehler auftreten.
Nein buffern muss man da nichts, da ist offensichtlich ein Fehler.
Und kannst du das enum mal posten? ![]()
Ja...deshalb sagte ich nutze printf und printe dir die Koordinaten...
Also schreibe in die Schleife:
printf("%.02f|%.02f|%.02f",Gebiete[i][f1x],Gebiete[i][f1y],Gebiete[i][f1z]);
und dann poste mal hier, was da raus kommt ![]()
Magst mal deine Tabellen Struktur zeigen? ![]()
Das würde mich mal interessieren ![]()
for (new i = 1; i <= Gebiete; i++)
Was ist das? ![]()
Also das sollte schon for(new i; i<sizeof(Gebiete); i++) sein.
Aber abgesehen davon, wenn es immer noch ein Problem mit den Koordinaten gibt, dann nutze doch printf und printe dir mal, was da ausgegeben wird ![]()
Und pack am Besten crashdetect in die server.cfg damit du direkt siehst, falls Fehler auftreten ![]()
Sollen die xx.xx auch wirklich der Anzahl der Stellen entsprechen oder ist das egal?
Schließlich kann man es ja eh nicht sehen.
Ich finde es übrigens nicht gut die Ip (selbst wenn es nur 2 Stellen sind) öffentlich zu senden, aber die Funktion dafür könnte z.B. so aussehen:
stock hideIp(const ip[])
{
new p = strfind(ip,".",false,strfind(ip,".",false,1)+1),n_ip[8];
strmid(n_ip,ip,0,p,sizeof(n_ip));
return n_ip;
}
Dann z.B. einfach so nutzen:
format(string,sizeof(string), "%s (ID: %d) IP: %s.xx.xx hat den Server betreten.",Spieler[playerid][pName],playerid,hideIp(plrIP));
//Edit: Lel hab vergessen den Punkt in der Funktion weg zu machen haha xD