forward IsAtATM(playerid);
einfügen
forward IsAtATM(playerid);
einfügen
Ja aber z.b haxler hat auch kein continue benutzt und es soll "angeblich" gehen,
ausserdem wieso LoadHaus löschen es muss doch bei ongamemode geladen werden?
Ok klappt nun doch jetzt buggen igendwie die Labels und Pickups
wenn ich eins erstelle wird es angezeigt doch dann wenn ich ein neues Haus erstelle
zeigt er es nicht mehr an hier alles was mann brauch:
#define MaxHaus 50
enum Hausdatei
{
Besitzer[30],
Float:Hx,
Float:Hy,
Float:Hz,
Float:Ix,
Float:Iy,
Float:Iz,
Zimmer,
Inte,
World,
HPreis,
Verkauft,
Verschlossen,
Hlevel,
Hkasse,
Hmiete
}
new HausInfo[MaxHaus][Hausdatei];
new Hausp[MaxHaus];
new Text3D:Hausa[MaxHaus];
forward LoadHaus();
forward SaveHaus();
forward UpdaHaus();
stock CreateHaus(cname[40],Float:cx,Float:cy,Float:cz,Float:zx,Float:zy,Float:zz,zimmer,inte,world,cpreis,csell,clock,clevel,ckasse,cmiete)
{
new string[128];
for(new i=1;i<MaxHaus;i++)
{
format(string,sizeof(string),"/Haus/Hausid %d.ini",i);
if(!dini_Exists(string))
{
dini_Create(string);
dini_Set(string,"Besitzer",cname);
dini_FloatSet(string,"Hx",cx);
dini_FloatSet(string,"Hy",cy);
dini_FloatSet(string,"Hz",cz);
dini_FloatSet(string,"Ix",zx);
dini_FloatSet(string,"Iy",zy);
dini_FloatSet(string,"Iz",zz);
dini_IntSet(string,"Zimmer",zimmer);
dini_IntSet(string,"Interior",inte);
dini_IntSet(string,"World",world);
dini_IntSet(string,"HPreis",cpreis);
dini_IntSet(string,"Verkauft",csell);
dini_IntSet(string,"Verschlossen",clock);
dini_IntSet(string,"Level",clevel);
dini_IntSet(string,"Kasse",ckasse);
dini_IntSet(string,"Miete",cmiete);
LoadHaus();
return 1;
}
}
return 1;
}
public LoadHaus()
{
new string[128];
for(new i=1;i<MaxHaus;i++)
{
format(string,sizeof(string),"/Haus/Hausid %d.ini",i);
if(dini_Exists(string))
{
format(HausInfo[i][Besitzer],40,"%s",dini_Get(string,"Besitzer"));
HausInfo[i][Hx] = dini_Float(string,"Hx");
HausInfo[i][Hy] = dini_Float(string,"Hy");
HausInfo[i][Hz] = dini_Float(string,"Hz");
HausInfo[i][Ix] = dini_Float(string,"Ix");
HausInfo[i][Iy] = dini_Float(string,"Iy");
HausInfo[i][Iz] = dini_Float(string,"Iz");
HausInfo[i][Zimmer] = dini_Int(string,"Zimmer");
HausInfo[i][Inte] = dini_Int(string,"Inte");
HausInfo[i][World] = dini_Int(string,"World");
HausInfo[i][HPreis] = dini_Int(string,"HPreis");
HausInfo[i][Verkauft] = dini_Int(string,"Verkauft");
HausInfo[i][Verschlossen] = dini_Int(string,"Verschlossen");
HausInfo[i][Hlevel] = dini_Int(string,"Level");
HausInfo[i][Hkasse] = dini_Int(string,"Kasse");
HausInfo[i][Hmiete] = dini_Int(string,"Miete");
}
if(HausInfo[i][Verkauft] == 0)
{
Hausp[i] = CreatePickup(1273,2,HausInfo[i][Hx],HausInfo[i][Hy],HausInfo[i][Hz]);
Hausp[i] = CreatePickup(1318,2,HausInfo[i][Ix],HausInfo[i][Iy],HausInfo[i][Iz]);
format(string, sizeof(string), "Besitzer: %s \nZimmer: %d \nPreis: %d$ \nLevel: %d",HausInfo[i][Besitzer],HausInfo[i][Zimmer],HausInfo[i][HPreis],HausInfo[i][Hlevel]);
Hausa[i] = Create3DTextLabel(string,Orange,HausInfo[i][Hx],HausInfo[i][Hy],HausInfo[i][Hz],10,0,1);
return 1;
}
if(HausInfo[i][Verkauft] == 1)
{
Hausp[i] = CreatePickup(1272,2,HausInfo[i][Hx],HausInfo[i][Hy],HausInfo[i][Hz]);
Hausp[i] = CreatePickup(1318,2,HausInfo[i][Ix],HausInfo[i][Iy],HausInfo[i][Iz]);
format(string, sizeof(string), "Besitzer: %s \nZimmer: %d \nMiete: %d$",HausInfo[i][Besitzer],HausInfo[i][Zimmer],HausInfo[i][Hmiete]);
Hausa[i] = Create3DTextLabel(string,Orange,HausInfo[i][Hx],HausInfo[i][Hy],HausInfo[i][Hz],10,0,1);
}
}
return 1;
}
public SaveHaus()
{
new string[128];
for(new i=1;i<MaxHaus;i++)
{
format(string,sizeof(string),"/Haus/Hausid %d.ini",i);
if(dini_Exists(string))
{
dini_Set(string,"Besitzer",HausInfo[i][Besitzer]);
dini_FloatSet(string,"Hx",HausInfo[i][Hx]);
dini_FloatSet(string,"Hy",HausInfo[i][Hy]);
dini_FloatSet(string,"Hz",HausInfo[i][Hz]);
dini_FloatSet(string,"Ix",HausInfo[i][Ix]);
dini_FloatSet(string,"Iy",HausInfo[i][Iy]);
dini_FloatSet(string,"Iz",HausInfo[i][Iz]);
dini_IntSet(string,"Zimmer",HausInfo[i][Zimmer]);
dini_IntSet(string,"Inte",HausInfo[i][Inte]);
dini_IntSet(string,"World",HausInfo[i][World]);
dini_IntSet(string,"HPreis",HausInfo[i][HPreis]);
dini_IntSet(string,"Verkauft",HausInfo[i][Verkauft]);
dini_IntSet(string,"Verschlossen",HausInfo[i][Verschlossen]);
dini_IntSet(string,"Level",HausInfo[i][Hlevel]);
dini_IntSet(string,"Kasse",HausInfo[i][Hkasse]);
dini_IntSet(string,"Miete",HausInfo[i][Hmiete]);
return 1;
}
}
return 1;
}
public UpdaHaus()
{
new string[128];
for(new i=1;i<MaxHaus;i++)
{
if(HausInfo[i][Verkauft] == 0)
{
DestroyPickup(Hausp[i]);
Hausp[i] = CreatePickup(1273,2,HausInfo[i][Hx],HausInfo[i][Hy],HausInfo[i][Hz]);
Hausp[i] = CreatePickup(1318,2,HausInfo[i][Ix],HausInfo[i][Iy],HausInfo[i][Iz]);
format(string, sizeof(string), "Besitzer: %s \nZimmer: %d \nPreis: %d$ \nLevel: %d",HausInfo[i][Besitzer],HausInfo[i][Zimmer],HausInfo[i][HPreis],HausInfo[i][Hlevel]);
Update3DTextLabelText(Hausa[i],Orange,string);
return 1;
}
if(HausInfo[i][Verkauft] == 1)
{
DestroyPickup(Hausp[i]);
Hausp[i] = CreatePickup(1272,2,HausInfo[i][Hx],HausInfo[i][Hy],HausInfo[i][Hz]);
Hausp[i] = CreatePickup(1318,2,HausInfo[i][Ix],HausInfo[i][Iy],HausInfo[i][Iz]);
format(string, sizeof(string), "Besitzer: %s \nZimmer: %d \nMiete: %d$",HausInfo[i][Besitzer],HausInfo[i][Zimmer],HausInfo[i][Hmiete]);
Update3DTextLabelText(Hausa[i],Orange,string);
}
}
return 1;
}
Ich habe eben ein Test durch geführt und das ergebniss war:
ich konnte ein haus erstellen doch er hat das haus was ich erstellt habe sofort
50 mal erstellt also das Limit nur wieso? vlt beim Createn wegen MaxHaus?
ich habe mir das Tutorial von Haxler als vorlage genommen.
Siehe Code unten neu erstellt und verbessert
(E) Code Alt
(E) Code Neu
(E) Code Überschrift
(E) Test gemacht
(E) Code neu gemacht ohne erfolg ..
Siehe unten
Hallo ich habe heute mal angefangen ein haus System zu machen das sollte so aussehen
CreateHaus(Hausid,Hx,Hy,Hz,Ix,Iy,Iz,Zimmer,Inte,World,HPreis,Verkauft,Verschlossen,Level)
CreateHaus(0,745.1514,-556.7821,18.0129,2317.8201,-1024.7500,1050.2109,5,9,0,30000,0,1,3);
Doch es gibt nur warnings aus:
ich weiß nicht wieso die werte sind vorhanden die er brauch doch igendwie klappts net so..
Klaaa ist die richtig
wieso sollte sie es nicht sein?
Carlist[ID Des Anderem Spielers = Also deine Variabel z.b SID,GIvePlayer][Carid]
versuch es mal so
Alles anzeigenOMG Ben was tust du da?
Wieder eine funktion mit Parameter aufrufen ohne ein argument zu übergeben?
Das kann ich funktionieren
Vergiss das was Ben von Timen gesagt/geschrieben hat und nutze lieber das untenstehende
OnPlayerSpawn(playerid)
{
SetTimerEx("Tickets", 1000, 1,"i",playerid);
retrun 1;
}
Immer wenn man eine Funktion mit einem oder mehreren Parametern der Timer aufruft dann immer mit SetTimerEx arbeiten
Vergiss nicht den Timer wieder zu Killen/Stoppen sonst hast du noch Timer von Spielern laufen, die garnicht mehr da sind.
Warum so kompliziert?
einfach Abfragen ob der Spieler an der Position ist unter (OnPlayerPickupPickup) viel einfach
so brauch mann den ganzen Timer mist etc net was ich unötig finde.
Bischen Denken schadet nicht,
wenn du die checkpoints nicht löscht werden sie da bleiben
so lange sie wollen musst sie auch löschen.
verwende =
if(response)
&
if(!response)
du hast
if(response == 0); statt if(response == 0)
vid zu vdid
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((newkeys == KEY_ACTION) && (IsPlayerInAnyVehicle(playerid)) && (GetPlayerState(playerid) == 2))
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 525)
{
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid, pX, pY, pZ);
new Float:vX, Float:vY, Float:vZ;
new Found = 0;
new vdid = 0;
while((vid<MAX_VEHICLES)&&(!Found))
{
vdid++;
GetVehiclePos(vdid,vX,vY,vZ);
if((floatabs(pX-vX)<7.0)&&(floatabs(pY-vY)<7.0)&&(floatabs(pZ-vZ)<7.0)&&(vdid!=GetPlayerVehicleID(playerid)))
{
Found=1;
if(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
{
DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
}
AttachTrailerToVehicle(vdid,GetPlayerVehicleID(playerid));
SendClientMessage(playerid,0xFFFF00AA,"Das Auto ist am Hacken!");
return 1;
}
}
}
}
return 1;
}
Poste mal die Errors.
Du musst auch abfragen unter
public OnPlayerText
ob die Spieler in der nähe sind such mal in der Sufu nach
GobalChatLimitRadius oder ChatLimitRadius dort findest du nen code
damit kannst du die entfernung einstellen
Ganz Einfach alles mit "MoneySpam" Entfernen und schon sind die errors weg.
Nein so klappt das auch nicht
Jemand noch ne idee wie ich es machen könnte?
ich wollte ein befehl erstellen der nur von 6 - 22 uhr geht doch igendwie klappt das nicht ganz ich habe es mit diesem Code gemacht:
if(Sstd < 6 && Smin == 00 || Sstd > 22 && Smin == 00)
und eben mit "Gettime" abgefragt
immer wenn ich ihn ausführe klappt es nicht wo ist der Fehler?
Eddit: lag an mir es geht nun Closed
Nein ich wollte es für mein Skin System haben das wenn er via dialog auswählt
und dann stirbt und dann Ist es in der Class Selection so meinte ich das nur wie mache ich das
wenn er es ausgewählt hat das er auch den key F4 drückt automatisch?