Falls du die Zeile mit if(vehicleid==Bauernhof[i]) meinst, Bauernhof[i] ist das Fahrzeug xD
Beiträge von Maksimo007
-
-
Hey,
ich habe mir nun ein Jobsystem gescriptet. (Checkpoints abfahren). Es funktioniert auch, bloß wenn jemand /searchbiz ID eingibt und durch diesen Checkpoint dann fährt, dieser nicht verschwindet. Weiß auch nicht so recht, wie ich das machen kann.
Code:
public OnPlayerEnterCheckpoint(playerid)
{
new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
for(new i=0;i<sizeof(Bauernhof);i++)
{
if(vehicleid==Bauernhof[i])
{
if(GetPVarInt(playerid,"Job")==1)
{
DisablePlayerCheckpoint(playerid);
SetPlayerRandomCheckpoints(playerid);
}
}
}
return 1;
}Kann ja nach der For-Schleife nicht "DisablePlayerCheckpoint(playerid);" einfügen, da der "Bauernhofcheckpoint" dann auch weg ist. Wie geht das?
Mfg Maksimo007
-
Ah okay, werde das gleich mal ausprobieren
//Edit: Danke, hat geklappt -
Hey,
ich habe mir diese Zeile hier erstellt:
SendClientMessage(playerid,Color_Orange,"Du hast erfolgreich den Job '{0xFF0000FF}Trucker{0xFFBE00FF}' angenommen!");Hier soll eig. die Meldung Orange sein und "Trucker" Rot. Leider funktioniert das von oben nicht. Die ganze Message ist Orange.
Was mache ich falsch?
Mfg Maksimo007^^
-
Hmm stimmt.
Danke -
Oh jetzt gehts
Danke
Aber was haste mit "Und mach es so aber wieso du es bei jedem abfragen neu auslesen lässt ist mir ein Rätsel " gemeint?^^Mfg Maksimo007
-
Okay, habe das mit SetTimerEx nun gemacht, es geht allerdings immer noch nicht. Warum ist das eine schlechte Lösung? (Würde es trotzdem gerne als Timer haben)^^
-
Wie meinst du das genau?
Also die pickups werden im stock "LoadHaus" erstellt.
stock LoadHaus(hausid)
{
new pfad[50];
format(pfad,50,"/Haeuser/%d.txt",hausid);
if(!fexist(pfad))return 0;HausInfo[hausid][haus_x] = dini_Float(pfad,"x");
HausInfo[hausid][haus_y] = dini_Float(pfad,"y");
HausInfo[hausid][haus_z] = dini_Float(pfad,"z");
HausInfo[hausid][haus_preis] = dini_Int(pfad,"preis");
HausInfo[hausid][haus_pickup] = CreatePickup(1273 ,23,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],0);
format(HausInfo[hausid][haus_besitzer],32,"%s",dini_Get(pfad,"besitzer"));
HausInfo[hausid][haus_z] = dini_Float(pfad,"z");
HausInfo[hausid][haus_preis] = dini_Int(pfad,"preis");
HausInfo[hausid][haus_innenraum] = dini_Int(pfad,"innenraum");
HausInfo[hausid][haus_id] = dini_Int(pfad,"HausID");
return 1;
} -
hmm ne, habe diese Zeile hinzugefügt:
AddStaticPickup(1273,23,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z],0);Funktioniert leider immer noch nicht.
-
Hey,
ich habe ein Problem, und zwar, wenn ein Spieler in das Pickup vor einem Haus geht, das TextDraw nicht erscheint, obwohl es erscheinen sollte. Woran könnte das liegen?Hier mein Code:
TextDraw:
for(new haus=1;haus<MAX_HAUS;haus++)
{
HausInfoText[haus] = TextDrawCreate(443.000000,315.000000,"Lade...");
TextDrawLetterSize(HausInfoText[haus],0.280000,1.700000);
TextDrawFont(HausInfoText[haus],2);
TextDrawSetShadow(HausInfoText[haus],2);
TextDrawSetOutline(HausInfoText[haus],1);
TextDrawUseBox(HausInfoText[haus],1);
TextDrawBackgroundColor(HausInfoText[haus],255);
TextDrawBoxColor(HausInfoText[haus],0x000000AA);
TextDrawTextSize(HausInfoText[haus],630.000000,0.000000);
LoadHaus(haus);
} SetTimer("HausInfoTimer",1000,true);// Das war alles bei OnGameModeInitTimer:
forward HausInfoTimer();
public HausInfoTimer()
{
new string[128];
for(new i=1;i<MAX_HAUS;i++)
{
format(string,sizeof(string),"Besitzer: %s~n~Preis: %d$",HausInfo[i][haus_besitzer],HausInfo[i][haus_preis]);
TextDrawSetString(HausInfoText[i],string);
}
return 1;
}forward UpdateHausInfoText(playerid,pickupid);
public UpdateHausInfoText(playerid,pickupid)
{
for(new haus=1;haus<MAX_HAUS;haus++)
{
new pfad[50];
format(pfad,sizeof(pfad),"/Haeuser/%d.txt",haus);
if(HausInfo[haus][haus_pickup] == pickupid)
{
if(IsPlayerInRangeOfPoint(playerid,2,dini_Float(pfad,"x"),dini_Float(pfad,"y"),dini_Float(pfad,"z")))
{
SendClientMessage(playerid,Color_Green,"Hey-Ho!");
TextDrawShowForPlayer(playerid,HausInfoText[haus]);
}
}
}
return 1;
}Der Timer im OnPlayerPickuppickup:
public OnPlayerPickUpPickup(playerid, pickupid)
{
SetTimer("UpdateHausInfoText",800,1);
return 1;
}Ich hoffe, ihr könnt mir weiterhelfen^^
Mfg Maksimo
-
Warum nicht? Habe die Häuser mit /createhaus erstellt. Es legt eine Datei mit den Koordinaten an. Hier die verschiedenen Codes:
enum innenraum_info
{
Float:innen_x,
Float:innen_y,
Float:innen_z,
innen_interior
}
new HausInnenraum[][innenraum_info] =
{
{2454.717041,-1700.871582,1013.5151,2}
};new inHaus[MAX_PLAYERS] = -1;
new inBiz[MAX_PLAYERS] = -1;enum haus_info
{
Float:haus_x,
Float:haus_y,
Float:haus_z,
haus_besitzer[32],
haus_preis,
haus_pickup,
haus_innenraum,
haus_id
}
new HausInfo[MAX_HAUS][haus_info];Und hier das mit dem Biz:
enum biz_info
{
Float:biz_x,
Float:biz_y,
Float:biz_z,
biz_name[32],
biz_besitzer[32],
biz_preis,
Text3D:biz_3DText,
biz_innenraum,
biz_id
}
new BizInfo[MAX_BIZ][biz_info];
Enter-Befehl:
ocmd:enter(playerid,params[])
{
for(new haus=1;haus<MAX_HAUS;haus++)
{
for(new biz=1;biz<MAX_BIZ;biz++)
{
if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof name);
if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
{
new innenraum = HausInfo[haus][haus_innenraum];
SetPlayerPos(playerid,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]);
SetPlayerInterior(playerid,HausInnenraum[innenraum][innen_interior]);
inHaus[playerid] = haus;
}
else SendClientMessage(playerid,Color_DarkRed,"Du bist nicht der Besitzer!");
break;
}
else if(IsPlayerInRangeOfPoint(playerid,5,BizInfo[biz][biz_x],BizInfo[biz][biz_y],BizInfo[biz][biz_z]))
{
if(strcmp(BizInfo[biz][biz_name],"24/7",false)==0)
{
SetPlayerPos(playerid,-25.884498,-185.868988,1003.546875);
SetPlayerInterior(playerid,17);
inBiz[playerid] = biz;
}
else if(strcmp(BizInfo[biz][biz_name],"Pizza-Restaurant",false)==0)
{
SetPlayerPos(playerid,373.825653,-117.270904,1001.499511);
SetPlayerInterior(playerid,5);
inBiz[playerid] = biz; } //Hier würde es mit (strcmp...Restaurant und so weitergehen)
}
}
}
return 1;
}
//Edit: Es funktioniert ja eig. alles, bloß halt nur bei mir xD, bei anderen Spielern nicht. Falls ihr noch paar andere Codes braucht, poste ich die auch gerne.^^Mfg Maksimo007
-
Hey,
ich habe ein Problem mit /exit. Wenn ich beispielsweise ein Biz betrete mit /enter, und danach wieder /exit eingebe, bin ich wieder am Anfangspunkte (normal). Wenn nun aber ein neuer Spieler dies genauso macht, dann ist er an den Koordinaten 0 0 0, also im Mittelpunkt der Map.
Hier der Code, falls ihr den braucht.^^
ocmd:exit(playerid,params[])
{
if(inHaus[playerid] != -1)
{
new haus = inHaus[playerid];
SetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
SetPlayerInterior(playerid,0);
SendClientMessage(playerid,Color_Green,"Du hast das Haus verlassen!");
inHaus[playerid] = -1;
}
else if(inBiz[playerid] != -1) {
new biz = inBiz[playerid];
SetPlayerPos(playerid,BizInfo[biz][biz_x],BizInfo[biz][biz_y],BizInfo[biz][biz_z]);
SetPlayerInterior(playerid,0);
SendClientMessage(playerid,Color_Green,"Du hast das Biz verlassen!");
inBiz[playerid] = -1;
}
return 1;
}Ich hoffe, dass ihr mir weiterhelfen könnt
Edit: Wenn neue Spieler ein Biz betreten, dann wieder verlassen, bekommen sie die Meldung "Du hast das Haus verlassen" und spawnen beim Bauernhof. Beim weiteren /Exit bekommen sie die Meldung "Du hast das Biz verlassen!" und spawnen am Anfangspunkt. Wieso geht das nicht richtig?
Habe schon alles versucht...Mfg Maksimo007
-
Hey,
ich habe ein Problem mit /spawncar. Wenn ich das eingebe, erscheint ja ein Flugzeug, und beim 2. mal eingeben, verschwindet es wieder. Nun überschneidet sich das ganze aber, wenn 2 Admins on sind. Der eine gibt /spawncar ein, das Fahrzeug erscheint. Der zweite gibt /spawncar ein, das Fahrzeug von Admin 1 verschwindet. Also kann man keine Fahrzeuge gleichzeitig spawnen.
Hier der Code:
ocmd:spawncar(playerid,params[])
{
new carID, Colour1, Colour2;
new vID;
new string[128];
new Float:x,Float:y,Float:z;
if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,Color_DarkRed,"Du bist kein Admin!");
if(sscanf(params,"iii",carID,Colour1,Colour2))return SendClientMessage(playerid,Color_DarkRed,"/spawncar [CarID] [Colour1] [Colour2]");
if(carID<400||carID>611)return SendClientMessage(playerid,Color_DarkRed,"Bitte eine gültige Zahl eingeben!");
if(Colour1>127)return SendClientMessage(playerid,Color_DarkRed,"Bitte eine gültige Zahl eingeben!");
if(Colour2>127)return SendClientMessage(playerid,Color_DarkRed,"Bitte eine gültige Zahl eingeben!");
if (GetPVarInt(playerid, "Lastvehicle"))
{
DestroyVehicle(GetPVarInt(playerid, "Lastvehicle"));
}
GetPlayerPos(playerid,x,y,z);
vID=CreateVehicle(carID,x-3.0,y,z,0.0,Colour1,Colour2,3600);
SetPVarInt(playerid,"LastVehicle",vID);
Tank[vID] = 100;
GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vID,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vID,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
Motor[vID] = false;
Licht[vID] = false;
format(string,sizeof(string),"CarSpawn: Du hast ein Fahrzeug gespawnt!");
SendClientMessage(playerid,Color_Orange,string);
SavePlayer(playerid);
return 1;
}Hoffe, ihr könnt mir helfen.
Mfg Maksimo007
-
Hey,
ich würde gerne ein Fahrschulsystem mit Fragen machen, also wo man mit Pfeiltasten a.), b.) und c.) auswählen kann. Wie mache ich das? Das ist ja kein Dialog oder TextDraw, oder?Mfg Maksimo007
-
Hey,
ich habe mir 2 Kommands mit /enabled NAME und /disable NAME sowie 2 Chats namens "public" und "admin" erstellt. Wenn ich nun aber den Chat public aktiviere, wird admin auch aktiviert, obwohl "enabled" bei public auf 1 und admin auf 0 ist.
Hier der Code:
ocmd:enablechat(playerid,params[])
{
new chatname[32];
for(new chat=1;chat<MAX_CHAT;chat++)
{
new pfad[50];
format(pfad,50,"/Chat/%d.txt",chat);
if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,Color_DarkRed,"Du bist kein Admin!");
if(sscanf(params,"s",chatname))return SendClientMessage(playerid,Color_DarkRed,"/enablechat [NAME]");
if(strcmp(ChatInfo[chat][chat_name],chatname,false)==0 && dini_Int(pfad,"enabled")==1)
{
return SendClientMessage(playerid,Color_DarkRed,"Der Chat ist doch schon eingeschaltet!");
}
else if(strcmp(ChatInfo[chat][chat_name],chatname,false)==0 && dini_Int(pfad,"enabled")==0)
{
dini_IntSet(pfad,"enabled",1);
SendClientMessage(playerid,Color_Green,"Der Chat wurde erfolgreich eingeschaltet!");
break;
}
}
return 1;
}ocmd:disablechat(playerid,params[])
{
new chatname[32];
for(new chat=1;chat<MAX_CHAT;chat++)
{
new pfad[50];
format(pfad,50,"/Chat/%d.txt",chat);
if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,Color_DarkRed,"Du bist kein Admin!");
if(sscanf(params,"s",chatname))return SendClientMessage(playerid,Color_DarkRed,"/disablechat [NAME]");
if(strcmp(ChatInfo[chat][chat_name],chatname,false)==0 && dini_Int(pfad,"enabled")==0)
{
return SendClientMessage(playerid,Color_DarkRed,"Der Chat ist doch schon ausgeschaltet!");
}
else if(strcmp(ChatInfo[chat][chat_name],chatname,false)==0 && dini_Int(pfad,"enabled")==1)
{
dini_IntSet(pfad,"enabled",0);
SendClientMessage(playerid,Color_Green,"Der Chat wurde erfolgreich ausgeschaltet!");
break;
}
}
return 1;
}Auch, wenn ich dann /enable public eingegeben habe und danach /enable admin, wird mir die Fehlermeldung ausgegeben, dass der Chat schon aktiviert ist.
Was ist daran falsch?Mfg Maksimo007
-
Hmm okay, weiß sonst vllt jemand eine Lösung?^^
-
Hmmm..., würde es da auch besser können xD
Bloß haben ich gelesen, dass es so schneller geht.
Der Code wäre aber doch richtig, oder? -
Hey,
ich habe mir ein Command mit /createchat, /enablechat und /disablechat erstellt. Bloß funktionieren /enablechat und /disablechat nicht.
1. Funktioniert das enable und das disable erst nach einem restart und dann auch noch buggy. Einmal setzt er es auf 1, dann einmal nicht. (1 = enable, 0 = disable).
Hier der Code:ocmd:createchat(playerid,params[])
{
new chatname[32], string[128];
if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,Color_DarkRed,"Du bist kein Admin!");
if(sscanf(params,"s",chatname))return SendClientMessage(playerid,Color_DarkRed,"/createchat [NAME]");
CreateChat(chatname,0);
format(string,sizeof(string),"Der Chat %s wurde erfolgreich erstellt!",chatname);
SendClientMessage(playerid,Color_Green,string);
return 1;}ocmd:enablechat(playerid,params[])
{
new chatname[32];
for(new chat=1;chat<MAX_CHAT;chat++)
{
new pfad[50];
format(pfad,50,"/Chat/%d.txt",chat);
if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,Color_DarkRed,"Du bist kein Admin!");
if(sscanf(params,"s",chatname))return SendClientMessage(playerid,Color_DarkRed,"/enablechat [NAME]");
if(strcmp(ChatInfo[chat][chat_name],chatname,false)==0 && dini_Int(pfad,"enabled")==0)
{
dini_IntSet(pfad,"enabled",1);
SendClientMessage(playerid,Color_Green,"Der Chat wurde erfolgreich eingeschaltet!");
break;
}
}
return 1;
}ocmd:disablechat(playerid,params[])
{
new chatname[32];
for(new chat=1;chat<MAX_CHAT;chat++)
{
new pfad[50];
format(pfad,50,"/Chat/%d.txt",chat);
if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,Color_DarkRed,"Du bist kein Admin!");
if(sscanf(params,"s",chatname))return SendClientMessage(playerid,Color_DarkRed,"/disablechat [NAME]");
if(strcmp(ChatInfo[chat][chat_name],chatname,false)==0 && dini_Int(pfad,"enabled")==1)
{
dini_IntSet(pfad,"enabled",0);
SendClientMessage(playerid,Color_Green,"Der Chat wurde erfolgreich ausgeschaltet!");
break;
}
}
return 1;}
stock CreateChat(Chatname[32],enabled)
{
for(new chat=1;chat<MAX_CHAT;chat++)
{
new pfad[50];
format(pfad,sizeof(pfad),"/Chat/%i.txt",chat);
if(!fexist(pfad))
{
dini_Create(pfad);
dini_Set(pfad,"name",Chatname);
dini_IntSet(pfad,"enabled",enabled);
return LoadChat(chat);
}
}
return 1;
}stock LoadChat(chatid)
{
new pfad[50];
format(pfad,sizeof(pfad),"/Chat/%d.txt",chatid);
if(!fexist(pfad))return 0;
format(ChatInfo[chatid][chat_name],32,"%s",dini_Get(pfad,"name"));
ChatInfo[chatid][chat_enabled] = dini_Int(pfad,"enabled");
return 1;
}Ich hoffe, ihr könnt mir helfen
Mfg Maksimo007
-
Sicher? Denn ich habe dies jedes mal so gemacht (mit Haus und Biz). Hier habe ich nur das einzelne durch Bank ersetzt.
//Edit: Habe gerade gemerkt, dass wenn ich mir die Koordinaten ausgeben lasse (SendClientMessage), nur X,Y,Z: 0.0000 kommt. Auch ohne LoadBank(bank). -
Hmm okay, ich versuche es.
//Edit: Es funktioniert immer noch nicht. Habe die Schleife mit 0 angefangen und die Höchste Datei in 0.txt umbenannt.