evt so?
format(string,sizeof(string),"%s\n %d ",string,cInfo[i][model]);
evt so?
format(string,sizeof(string),"%s\n %d ",string,cInfo[i][model]);
Ja da du hier ein return hast
return SendClientMessage(playerid,COLOR_RED,"Keine gefunden");
das return beendet somit die ganzeschleife und was darutner kommt
somit versuchs mal damit
ocmd:freikaufen(playerid)
{
if(PlayerInfo[playerid][pLoggedIn]==false)return 1;
new string[128],fahrzeugevorhanden=0;
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][besitzer] == PlayerInfo[playerid][p_id])
{
if(cInfo[i][c_gespeert] == 1)
{
format(string,sizeof(string),"%s %d \n",string,cInfo[i][model]);
fahrzeugevorhanden=1;
}
}
}
if( fahrzeugevorhanden==1)
{
return ShowPlayerDialog(playerid,DIALOG_CARFREIKAUFEN_AUSWAHL,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Auswählen","Abbruch");
}
else
{
return SendClientMessage(playerid,COLOR_RED,"Keine Fahrzeuge in der Verwahrstelle");
}
return 1;
}
und das
else
{
return SendClientMessage(playerid,COLOR_RED,"Kein Besitzer");
}
lassen wir auch aus der Schleife weil das genau das gleiche wie mit dem c_gesperrt ist
Warum?
also es ist relativ egal ob wir nicht der besitzer vom fahrzeug sind, denn es passiert auch nichts mit dem wagen
Hoffe du verstehst es mfg. Mogly1
Okay schuldige habe ich wohl schlecht erklärt...
for(new i=0;i<sizeof(cInfo);i++)
{
new string[500];
if(cInfo[i][OWer]==playerid)//anpasssen aufbesitzer also ob der wagen dem gehört
{
if(cInfo[i][c_gesperrt] == 1)
{
format(string,sizeof(string)," %s %d \n", string, cInfo[i][Hier]);
}
}
}
ShowPlayerDialog(playerid,Dialog,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Weiter","Abbrechen");
so Pass auf er geht in der for schleife alles deine wagens die abgeschleppt sind druch und setzt den string
durch das \n wird nach jedem string gleich ne neue Zeile genommen.
heisst bei zwei wagen kommt dann beim string beim nächsten durch gang das neue dazu.
nur so die frage wie fragst du denn ab obe s in der verwahrstelle ist?
Hey,
wie wäre es mit einer for schleife?
also
for(new i=0;i<MAX_VEHICLES;i++)//MAX_VEHICLES evt anpassen
{
new string[250];//länge je nach wie viele cars wer sieht
if(abgeschleppt==true)//anpassen
{
format(string,sizeof(string)," Alle angaben die ausgegebenw erden sollen(wichtig nur das \n zum schluss) \n", die angaben zu dem string);
}
ShowPlayerDialog(playerid,Dialog,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Weiter","Abbrechen");
}
das wäre mein ansatz
Hey nur mal so ne Fragen wenn du hier SendClientMessage rein machst
if(IsPlayerInRangeOfPoint(i,2.0,1928.8702,-1775.9166,13.5469)) //LS TANKE NÄHE DISCO öffnen
{
SendClientMessage(i,-1,"Tür sollte aufgehen/offen sein");
if(TankTuerVar == 0)
{
MoveDynamicObject(Tanketuer1, 1928.46899, -1777.35461-1, 12.54500, 1);
MoveDynamicObject(Tanketuer2, 1928.47900, -1775.87427+1, 12.54500, 1);
TankTuerVar = 1;
}
}
bekommt dann jede spieler id diesen text auch?
Edit:
versuch mal den Code so aus ob der Funktioniert
public Timer3()
{
new lstanke=0,lsbank=0,drogendoor=0,drogengate=0;;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(i,2.0,1928.8702,-1775.9166,13.5469)) //LS TANKE NÄHE DISCO öffnen
{
lstanke=1;
}
if(IsPlayerInRangeOfPoint(i,2.0,928.8665,-1535.9529,13.5415)) //BANK LS Türen
{
lsbank=1;
}
if(IsPlayerInRangeOfPoint(i,10.0,-2162.9109,-225.1411,36.5156)) //Mission Drogen Tür
{
drogendoor=1;
}
if(IsPlayerInRangeOfPoint(i,10.0,-2127.0476,-80.1230,35.3136)) //Mission Drogen Tor
{
drogengate=1;
}
}
}
//abfragen ob 1 spieler in der nähe war
if(drogengate==1)
{
if(DrogenTorr == 0)
{
MoveDynamicObject(DrogenTor1, -2127.48657+10, -80.52002, 37.05427, 1);
DrogenTorr = 1;
}
}
else
{
if(DrogenTorr == 1)
{
MoveDynamicObject(DrogenTor1, -2127.48657, -80.52002, 37.05427, 1);
DrogenTorr = 0;
}
}
if(drogendoor==1)
{
if(DrogenTTuerVar == 0)
{
MoveDynamicObject(DrogenTuer1, -2163.69458+1, -225.57455, 35.51548, 1);
DrogenTTuerVar = 1;
}
}
else
{
if(DrogenTTuerVar == 1)
{
MoveDynamicObject(DrogenTuer1, -2163.69458, -225.57455, 35.51548, 1);
DrogenTTuerVar = 0;
}
}
if(lsbank==1)
{
if(BankTuerVar == 0)
{
MoveDynamicObject(Banktuer1, 929.29138, -1534.40234+1, 12.56830, 1);
MoveDynamicObject(Banktuer2, 929.26746, -1535.88208-1, 12.56830, 1);
BankTuerVar = 1;
}
}
else
{
if(BankTuerVar == 1)
{
MoveDynamicObject(Banktuer1, 929.29138, -1534.40234, 12.56830, 1);
MoveDynamicObject(Banktuer2, 929.26746, -1535.88208, 12.56830, 1);
BankTuerVar = 0;
}
}
if(lstanke==1)
{
if(TankTuerVar == 0)
{
MoveDynamicObject(Tanketuer1, 1928.46899, -1777.35461-1, 12.54500, 1);
MoveDynamicObject(Tanketuer2, 1928.47900, -1775.87427+1, 12.54500, 1);
TankTuerVar = 1;
}
}
else
{
if(TankTuerVar == 1)
{
MoveDynamicObject(Tanketuer1, 1928.46899, -1777.35461, 12.54500, 1);
MoveDynamicObject(Tanketuer2, 1928.47900, -1775.87427, 12.54500, 1);
TankTuerVar = 0;
}
}
return 1;
}
Ich finds super schön,
edit: Kritik nicht zu der Tankstelle, sondern zu den Häusern
nur eine Sache die mich stört aber auch nur wenn mann es von oben betrachtet ist das die Textur vom Graß so Dunkelgrün und normal sehr hell ist und durch die Hecke sieht man halt den unterschied krass....
aber das fällt glaube kaum auf und so helles Graß ist auch sehr komisch also wie gesagt sehr tolle map
Scripting Base
Hier findest du Hilfe zur Erstellung von Gamemodes und Filterscripten
ich glaube nicht das dir jemand das einfach so macht
Eine richtige Währung die mal durch hält
Allgemein oder bei nem befehl wann wird er denn nicht mehr erkannt?
falls bei nen befhell das auch so ist schick mal den...
ehm so einen wirst du glaube nicht finden, denn du musst es ja auf deinen Auto system anpassen das die Km gespeichert werden...
edit: evt. hilft dir der Link
meine 1 idee wäre mit NPcs? recorden lassen und wiedergeben direct, also spieler kammera dann auf den npc...
in der serverdatei einstellen von den maxnpcs?
if(Spieler[p][pWantedPoints] < 4)continue;
mit der abfrage so
überspringst du alle die weniger als 4 haben wäre es anders rum also so > würden alle die mehr als 4 wd haben übersprungen und nicht angezeigt werden ![]()
ehm der timer sieht sehr kommich aus
edit: nurtz den timer mal nur unter ongamemode
z.b so
SetTimer("mostwanted",5000,true); also entweder alle 5 sekunden oder naja dein wert halt
und mach den public mal so evt. hilft das
public mostwanted()
{
new string[500];
print("mostwantedtest");
ForEachPlayer(p)
{
if(GetPVarInt(p,"Eingeloggt") != 1)continue;
if(Spieler[p][pWantedPoints] < 4)continue;
format(string,sizeof(string),"%s (ID:%i) | %i Wantedpunkte",SpielerName(p),p,Spieler[p][pWantedPoints]);
}
Update3DTextLabelText(MostWantedLabel,WEISS,string);
return 1;
}
na bei / wantets sollte dir nen string aus gegeben werden diesen setzt du dann in den 3dtext ein.
Am besten nutz du noch nen timer oder immer wenn wer Wanteds bekommt, um diesen 3dtext zu updaten.
hoffe du verstehst wie ich das meine ![]()
//edit
SetPlayerCheckpoint(playerid,x,y,z,größe des kreises bzw nimm 5);
also apss auf beim Registrieren setzt du
pNeuling auf 1
beim spawnen fragst ab obs 1 ist wenn ja gibst du ihn einen chackpoint und immer soweiter bis zum ende
dann variable auf 0