Wenn du das Tutorial genauer durchliest, wirst du merken dass erklärt wird, wie man 3D-Textlabels erstellt.... die sind doch auch Okay.
LG ;D
Wenn du das Tutorial genauer durchliest, wirst du merken dass erklärt wird, wie man 3D-Textlabels erstellt.... die sind doch auch Okay.
LG ;D
Wie meinst du das?
AddPlayerClass(0,2048.4526,1329.0819,10.6719,181.7217,0,0,0,0,0,0); // position
2048.4526,1329.0819,10.6719,181.7217
X-Koordinate, Y-Koordinate, Z-Koordinate, FacingAngel
An diesem Punkt spawnt der Spieler in der Regel...
Und bei OnPlayerRequestClass, das sind nicht die Spawn Koordinaten sondern die Koordinaten wo der Spieler sich während der Kameraauswahl befindet.
Probier es mal so:
ocmd:o(playerid,params[])
{
if(!strlen(params))return SendClientMessage(playerid, COLOR_RED, "Benutze: /o [Text]!");
new t[128];
format(t, sizeof(t), "(( %s: %s ))", PlayerName[playerid], params);
SendClientMessageToAll(farbe, t);
return 1;
}
Brauchst include OCMD
LG
Ganz oben:
#define Gunshop 1
Dann der Befehl um das Waffenmenü zu öffnen:
if (strcmp("/gunshop", cmdtext, true) == 0)
{
//if(IsPlayerInRangeOfPoint(playerid,5.0,x,y,z))
{
ShowPlayerDialog(playerid,Gunshop,DIALOG_STYLE_LIST,"Weapons","Desert Eagle - $5000\nMP5 - $6500\nShotgun - $8000\nAK47 - $10000\nArmour - $1000","Buy","Back");
return 1;
}
else
{
SendClientMessage(playerid, COLOR_RED, "You aren't at the gunshop pickup!");
}
}
return 1;
}
Und zuletzt bei OnDialogResponse:
if(dialogid == Gunshop)
{
if(response)
{
if(listitem == 0)
{
if(price[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"You haven't got enough money!");
GivePlayerWeapon(playerid,24,50);
GivePlayerMoney(playerid, -5000);
}
if(listitem == 1)
{
if(price[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"You haven't got enough money!");
GivePlayerWeapon(playerid,29,200);
GivePlayerMoney(playerid, -6500);
}
if(listitem == 2)
{
if(price[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"You haven't got enough money!");
GivePlayerWeapon(playerid,31,300);
GivePlayerMoney(playerid, -8000);
}
if(listitem == 3)
{
if(price[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"You haven't got enough money!");
GivePlayerWeapon(playerid,25,25);
GivePlayerMoney(playerid, -10000);
}
if(listitem == 4)
{
if(price[listitem] >= GetPlayerMoney(playerid))return SendClientMessage(playerid,COLOR_RED,"You haven't got enough money!");
SetPlayerArmour(playerid,100.0);
GivePlayerMoney(playerid, -1000);
}
}
}
LG
Zum PayDay:
Versuch's mal so:
public Paytimer()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
Tutorial[i]++;
if(Tutorial[i] == 60)
{
injail[i]--;
if(injail[i] == 1)
{
injail[i] = 0;
SetPlayerInterior(i, 0);
SetPlayerPos(i, 1546.2164,-1675.5476,13.3128);
}
}
Time[i]++;
if(Time[i] == 20)
{
SendClientMessage(i, 0xFFFFFFFF, "_____PayDay_____");
SendClientMessage(i, 0xFFFFFFFF, "Du erhälst:");
SendClientMessage(i, 0xFFFFFFFF, "$1200 bar!");
GivePlayerMoney(i, 1200);
Time[i]= 0;
}
return 1;
}
Sollte klappen...
LG
Guten Tag liebe Community.
// Problem 1: Gelöst....
Bleibt Problem 2:
Und das zweite, und zudem das kleinere Problem.
Sofern ein Spieler einen Schein nicht besitzt und in ein Fahrzeug einsteigt, wofür man diesen Schein benötigt, erhält der Spieler keine Warnung- Was ist hier der Fehler?
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(!SpielerInfo[playerid][Carschein])
{
if(vehiclemodel == 462 || vehiclemodel == 510 || vehiclemodel == 509 || vehiclemodel == 448 || vehiclemodel == 481 )
return SendClientMessage(playerid, grau, "Dieses Fahrzeug darfst du ohne Führerschein fahren.");
else
SendClientMessage(playerid, COLOR_RED, "Du hast keinen Führerschein! Pass auf, dass die Cops dich nicht erwischen!");
}
if(IsInBike(vehid) && SpielerInfo[playerid][Bikeschein] == 0)
{
SendClientMessage(playerid,COLOR_RED,"Du hast keinen Motorradschein! Pass auf, dass die Cops dich nicht erwischen!");
}
else if(IsInBoat(vehid) && SpielerInfo[playerid][Bootschein] == 0)
{
SendClientMessage(playerid,COLOR_RED,"Du hast keinen Bootschein! Pass auf, dass die Cops dich nicht erwischen!");
}
else if(IsInTruck(vehid) && SpielerInfo[playerid][Truckschein] == 0)
{
SendClientMessage(playerid,COLOR_RED,"Du hast keinen LKW Schein! Pass auf, dass die Cops dich nicht erwischen!");
}
else if(IsInPlane(vehid) && SpielerInfo[playerid][Flugschein] == 0)
{
SendClientMessage(playerid,COLOR_RED,"Du hast keinen Flugschein! Pass auf, dass die Cops dich nicht erwischen!");
}
return 1;
}
Ich hoffe, das ihr mir helfen könnt....
Mit freundlichen Grüßen;
|GSR|Honig.
<// Edit: Mein Script ist SelfMade
Halli Hallo...
Ich habe einige kleine Probleme. Zum ersten wäre da, dass der Spieler keine "Warnnachricht" bekommt, wenn er einen Schein nicht besitzt und ins Fahrzeug einsteigt:
Bei OnPlayerEnterVehicle muss igendwas falsch sein....:
if(!SpielerInfo[playerid][Carschein])
{
if(vehiclemodel == 462 || vehiclemodel == 510 || vehiclemodel == 509 || vehiclemodel == 448 || vehiclemodel == 481 )
return SendClientMessage(playerid, grau, "Dieses Fahrzeug darfst du ohne Führerschein fahren.");
else
SendClientMessage(playerid, COLOR_RED, "Du hast keinen Führerschein! Pass auf, dass die Cops dich nicht erwischen!");
}
if(IsInBike(vehid) && SpielerInfo[playerid][Bikeschein] == 0)
{
SendClientMessage(playerid,COLOR_RED,"Du hast keinen Motorradschein! Pass auf, dass die Cops dich nicht erwischen!");
}
else if(IsInBoat(vehid) && SpielerInfo[playerid][Bootschein] == 0)
{
SendClientMessage(playerid,COLOR_RED,"Du hast keinen Bootschein! Pass auf, dass die Cops dich nicht erwischen!");
}
else if(IsInTruck(vehid) && SpielerInfo[playerid][Truckschein] == 0)
{
SendClientMessage(playerid,COLOR_RED,"Du hast keinen LKW Schein! Pass auf, dass die Cops dich nicht erwischen!");
}
else if(IsInPlane(vehid) && SpielerInfo[playerid][Flugschein] == 0)
{
SendClientMessage(playerid,COLOR_RED,"Du hast keinen Flugschein! Pass auf, dass die Cops dich nicht erwischen!");
}
return 1;
}
Und als nächstes:
Mein Befehl zum Licenses zeigen, allerdings verstecken sich da mehrere kleine Bugs drinnen, wie kann ich die beheben?
dcmd_showlicenses(playerid,params[])
{
new pid;
if(!IsPlayerInRangeOfPlayer(6.0,playerid,pid)) return SendClientMessage(playerid,COLOR_RED,"Spieler ist nicht in der Nähe!");
if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,COLOR_RED,"SpielerID existiert nicht!");
if(sscanf(params,"u",pid)) return SendClientMessage(playerid,COLOR_RED, "Benutzung: /showlicenses [ID]");
else
{
new string[128];
format(string,sizeof(string),"Du hast ID %d deine Licenses gezeigt!",pid);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
showlicenses(playerid,pid);
return 1;
}
}
1. Wenn man /showlicenses Lalala macht und diese ID garnicht online ist steht da: "Du hast deine Licenses ID 65632 gezeigt"
2. Wenn man die Licenses einem Spieler zeigt, der online ist, sieht man nur selber seine Licenses...
Hier noch as Public dazu:
public showlicenses(playerid,pid)
{
new String[256];
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(pid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
new carlicense = SpielerInfo[playerid][Carschein];
new bikelicense = SpielerInfo[playerid][Bikeschein];
new flylicense = SpielerInfo[playerid][Flugschein];
new trucklicense = SpielerInfo[playerid][Truckschein];
new boatlicense = SpielerInfo[playerid][Bootschein];
new gunlicense = SpielerInfo[playerid][Waffenschein];
format(String,sizeof(String),"| ** %s zeigt dir seine Licenses: ** ",name);
SendClientMessage(playerid,grau,String);
format(String,sizeof(String),"| Autoführerschein: %d",carlicense);
SendClientMessage(playerid,grau,String);
format(String,sizeof(String),"| Motorradschein: %d ",bikelicense);
SendClientMessage(playerid,grau,String);
format(String,sizeof(String),"| Flugschein: %d ",flylicense);
SendClientMessage(playerid,grau,String);
format(String,sizeof(String),"| LKW Schein: %d ",trucklicense);
SendClientMessage(playerid,grau,String);
format(String,sizeof(String),"| Bootschein: %d ",boatlicense);
SendClientMessage(playerid,grau,String);
format(String,sizeof(String),"| Waffenschein: %d",gunlicense);
SendClientMessage(playerid,grau,String);
return 1;
}
Ich finde meine Fehler nichtmehr....
Bitte um Hilfe;
Mit freundlichen Grüßen:
Honig.
Kleiner Vorschlag, machs am besten so wie in diesem Tutorial beschrieben:
[ SCRIPTING ] Checkpoints abfahren
Hat mir auch sehr geholfen, da ich anfangs mit meinem Jobsystem ähnliche Probleme hatte.
Zudem ist es so noch dynamisch und viel übersichtlicher wenn du mehrere Checkpoints hast^^
Lass mich raten, du benutzt XTreme Vehicle Plotter?^^
Das hier ist nämlich falsch:
Flughafen = GangZoneCreate(1375,78, -2660,902, 2140,15, -2435,881);
Du hast in der X,Y,Z Koordinate anstatt einen Punkt ein Komma gelassen, dass muss man ändern:
Flughafen = GangZoneCreate(1375.78, -2660.902, 2140.15, -2435.881);
Standartmäßig wird das beim Vehicle Plotter nämlich immer mit Kommas anstatt Punkten erstellt^^
LG
Oh verdammt xD Peinlich xDD
Naja, danke
Hier trotzdem noch ein nützlicher stock
stock GivePlayerScore(playerid,Score)
{
SetPlayerScore(playerid,GetPlayerScore(playerid)+Score);
}
Probier's mal so:
SetPlayerScore(playerid, GetPlayerScore(playerid) + 10);
LG
Ehm mir ist aufgefallen dass du alles einzeln suchst o.ô...
z.B. afk, Cuff etc...
Mach doch 1 Thread auf wo du einfach alles reinschreibst was du suchst.... oder lad dir n Cops n Robbers GM runter...
Aber am allerbesten wäre: Mach's selber ;D
if(SpielerInfo[playerid][Scriptingkenntnise] == 100)
Vielen Dank für die schnelle Hilfe
LG
Ich habe eine Frage, es gibt ja GetClosestPlayer, aber wie mache ich das dann so, dass man zB jemanden nur healen kann, wenn man neben ihm steht?
Vote 4 DCMD ftw o.o
Naja, wollte ja nur helfen
Probiers mal so:
dcmd(invite,6,cmdtext);
dcmd_invite(playerid,params[])
{
new pID;
new frakid = SpielerInfo[playerid][Chef];
new string[128];
new string2[256];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(SpielerInfo[playerid][Chef] > 0)
{
if(sscanf(params, "u",pID))
{
return SendClientMessage(playerid,COLOR_RED,"Benutze: /Invite [playerid]");
}
if(!IsPlayerConnected(pID)) {
return SendClientMessage(playerid,COLOR_RED,"SpielerID existiert nicht!");
}
if(frakid == 1) { SpielerInfo[pID][Firma] = 1; SpielerInfo[pID][Beruf] = 1; SetPlayerSkin(playerid, 0); } //Fraktion 1
else if(frakid == 2) { SpielerInfo[pID][Firma] = 2; SpielerInfo[pID][Beruf] = 2; SetPlayerSkin(playerid, 0); } //Fraktion 2
else if(frakid == 3) { SpielerInfo[pID][Firma] = 3; SpielerInfo[pID][Beruf] = 3; SetPlayerSkin(playerid, 0); } //Fraktion 3
else if(frakid == 4) { SpielerInfo[pID][Firma] = 4; SpielerInfo[pID][Beruf] = 4; SetPlayerSkin(playerid, 0); } //Fraktion 4
format(string, sizeof(string),"Du hast ID: %d eingeladen beizutreten",pID);
format(string2, sizeof(string2),"Du wurdest von Leader %s eingeladen beizutreten.",name);
SendClientMessage(pID,0x00FFFFFF, string2);
SendClientMessage(playerid,0x00FFFFFF, string);
}
else
{
SendClientMessage(playerid,COLOR_RED, "Du bist kein Leader!");
}
return 1;
}
Natürlich noch anpassen
MfG
Jap, wie oben bereits erwähnt ich habe jedem Dialog eine eigene ID gegeben:
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define buymenu 3
#define Bankmenu 4
#define Einzahlung 5
#define Auszahlung 6
#define Ueberweisung 7
#define Kontostand 8
#define EinzahlungText 9
#define AuszahlungText 10
#define UeberweisungText1 11
#define Ueberweisung2 12
#define bsnmenu 13
#define pizzamenu 14
#define alcohol 15
#define schwarzmarkt 16
#define rathausmenu 17
#define jobmenu 18
#define DIALOG_STATS 19 // Stats MSG Box
#define DIALOG_LICENSES 20 // Licenses MSG Box
#define DIALOG_HELP 21 // Help MSG Box
#define DIALOG_NAVI 22
#define NAVI_1 23
#define NAVI_2 24
#define NAVI_3 25
#define NAVI_4 26
#define NAVI_5 27
Alle meine Dialoge
Falls man MSG Boxes nicht als einen eigenen Dialog definieren soll, bitte sagt es mir.
....
Sobald ich auf ein Listitem InGame im GUi gehe, passiert garnichtsmehr, ausser wenn ich auf Führerschein oder Personalausweis gehe... hat dafür eventuell jemand eine Erklärung bzw. Lösung?
/-> Das Rathausmenü: Wenn ich hier auf Arbeitslosengeld gehe, passiert garnichts. Wenn ich auf Jobs gehe, wird der Dialog Jobmenu noch angezeigt... Führerschein und Passport funzen hier auch:
if (dialogid == rathausmenu)
{
if (response)
{
if(listitem == 0) // Jobs
{
ShowPlayerDialog(playerid, jobmenu, DIALOG_STYLE_LIST,"Jobmenu","Müllmann\nLieferjunge\nBauer\nTrucker\nStraßenfeger","Wählen","Abbruch");
}
if(listitem == 1) // Führerschein
{
new string[9];
if(GetPlayerMoney(playerid) >= 50)
{
if (SpielerInfo[playerid][Carschein] == 0)
{
GivePlayerMoney(playerid, -50);
SetTimerEx("Carscheinstart", 1,false, "d", playerid);
format(string, sizeof(string), "~r~-$50");
GameTextForPlayer(playerid, string, 3000, 1);
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Geld!");
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast schon einen Führerschein!");
}
if(listitem == 2) // Personalausweis
{
if(GetPlayerMoney(playerid) >= 250)
{
if (SpielerInfo[playerid][Perso] == 0)
{
SpielerInfo[playerid][Perso] = 1;
GivePlayerMoney(playerid, -250);
SendClientMessage(playerid,COLOR_YELLOW, "Herzlichen Glückwunsch! Du besitzt nun einen Personalausweis und bist Bürger von Los Santos.");
SendClientMessage(playerid,COLOR_YELLOW, "Benutze /showpassport.");
format(string, sizeof(string), "~r~-$250");
GameTextForPlayer(playerid, string, 3000, 1);
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Geld!");
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du hast schon einen Personalausweis!");
}
if(listitem == 3) // Arbeitslosengeld
{
SendClientMessage(playerid,COLOR_YELLOW, "Geh arbeiten!!");
}
}
}
Und nun das Jobmenu, das angezeigt wird, wenn ich im Rathausmenü auf "Jobs" gehe.
if(dialogid == jobmenu)
{
if(response)
{
switch(listitem)
{
case 0: // Müllmann
{
SetPlayerCheckpoint(playerid, 2185.4858,-1983.9816,13.5510, 3.0);
SendClientMessage(playerid,COLOR_YELLOW,"Wenn du diesen Job willst, fahre zum rot markierten Punkt auf der Karte!");
}
case 1: // Lieferjunge
{
SetPlayerCheckpoint(playerid, 2095.7786,-1805.6913,13.5519, 3.0);
SendClientMessage(playerid,COLOR_YELLOW,"Wenn du diesen Job willst, fahre zum rot markierten Punkt auf der Karte!");
}
case 2: // Bauer
{
SetPlayerCheckpoint(playerid, -378.9189,-1458.5562,25.7266, 3.0);
SendClientMessage(playerid,COLOR_YELLOW,"Wenn du diesen Job willst, fahre zum rot markierten Punkt auf der Karte!");
}
case 3: // Trucker
{
SetPlayerCheckpoint(playerid,1770.2661,-2041.1040,13.5294, 3.0);
SendClientMessage(playerid,COLOR_YELLOW,"Wenn du diesen Job willst, fahre zum rot markierten Punkt auf der Karte!");
}
case 4: // Straßenfeger
{
SetPlayerCheckpoint(playerid, 1521.0367,-1834.8107,13.5469, 3.0);
SendClientMessage(playerid,COLOR_YELLOW,"Wenn du diesen Job willst, fahre zum rot markierten Punkt auf der Karte!");
}
}
}
}
}
}
// Doch wenn ich auf einen Job gehe, passiert wie oben erwähnt. garnichtsmehr.
Was soll ich jetzt machen? / Welchen Fehler habe ich gemacht? Denn ich habe brav allen Dialogen eine eigene ID gegeben und sie definiert, es gibt keine Überschreitungen oder ähnliches.
Bitte um Hilfe..
Mit freundlichen Grüßen
// Push weil das so weit nach unten gerutscht ist
Alles klar... sorry für den Push.. ich war etwas zu voreilig -.-