sry schreiber meinte ich. Und das ist das ding was blinkt wenn du irgendwo was schreibst. kA wie ich das erklären soll xD
Beiträge von maddin
-
-
mit \n springst du in die nächste Zeile, und
mit \r setzt du den schreiber an den anfang der Zeile/E: r hat gefehlt^^
/E²: ich hab gefailt, Michael hat recht^^ -
ausserdem wird OnRconLoginAttempt erst nach dem einloggen ausgeführt. Das heisst auch wenn du da returnst biste schon angemeldet (vorrausgesetzt das pw is richtig)
So wie du dir das vorstellst gehts nicht.
ZitatIch hab das nicht so verstanden toll und dann bekomme ich gleich warning reinggehauen !
Und dafür hoffentlich noch eine wegen spam -
GIbt ne Include dafür.
GetVehicleColor.inc
Dann kannste die funktion
GetVehicleColor(vehicleid, &color1, &color2)
benutzen -
Sachen wie Integer, string etc. sind das erste womit man beim Scripten kofnrontiert wird. Ein gewisses grundwissen setze ich einfach vorraus, da ich ja auch nicht extra erkläre was ein enum oder ein array ist. Und wenn man ein bisschen grundwissen hat, sollte man auch wissen das ein integer eine zahl ist
-
Soll das ein Daumen auf dem schloss sein? Der sieht n bissl komisch aus.
-
Du hast nur 3 variablen in denen du die ID des 3dTextes speicherst. Du hast aber mehr häuser also werden die 3 variablen immer nur geändert. Versuchs mal so:
Ganz nach oben:
new Text3D:HausInfo[ANZAHL_DEINER_HÄUSER];//das einfach in die anzahl deiner Häsuer ändern
Dann unter OnGameModeInit oder wo auch immer du die 3d texte erstellst:
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned] == 1)
{
if(HouseInfo[h][hRentabil] == 0)
{
format(string, sizeof(string), "Dieses Haus gehört: %s \nLevel: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
}
else
{
format(string, sizeof(string), "Dieses Haus gehört: %s \nMiete: $%d Level: %d \nBenutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
}
}
else
{
format(string, sizeof(string), "Dieses Haus ist zu Verkaufen \nBeschreibung: %s \nPreis: $%d \nLevel: %d \nBenutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
}
HausInfo[h] = Create3DTextLabel(string,COLOR_ORANGE,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],30.0,0,1);
Und zum Aktualisieren solltest du Update3DTextLabelText benutzen anstatt zu löschen und neu zu erstellen:
public Haus3D()
{
new string[256];
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned] == 1)
{
if(HouseInfo[h][hRentabil] == 0)
{
format(string, sizeof(string), "Dieses Haus gehört: %s \nLevel: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
}
else
{
format(string, sizeof(string), "Dieses Haus gehört: %s \nMiete: $%d Level: %d \nBenutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
}
}
else
{
format(string, sizeof(string), "Dieses Haus ist zu Verkaufen \nBeschreibung: %s \nPreis: $%d \nLevel: %d \nBenutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
}
Update3DTextLabelText(HausInfo[h], COLOR_ORANGE, string);
}
return 1;
}Mfg.
-
-
ja kann gut sein. Und du solltest das eh weg lassen, sonst kommt die meldung immer wenn man nicht an der stelle ist und auf die taste drückt, was auf dauer ziemlich nervig sein kann
-
Hast du auch
ShowNameTags(1);
Unter OnGameModeInit stehen?Und füg das mal noch dazu:
public OnPlayerStreamIn(playerid, forplayerid)
{
if(mask[playerid]==0)
{
ShowPlayerNameTagForPlayer(forplayerid, playerid, true)
}
else if(mask[playerid]==1)
{
ShowPlayerNameTagForPlayer(forplayerid, playerid, false)
}
return 1;
}
Hab noch nie mit ShowPlayerNameTagForPlayer gearbeitet, aber vielleicht muss man das wiederholen wenn der Spieler gestreamt wird. -
Versuchs mal so
if(newkeys & KEY_SECONDARY_ATTACK)
{
if(IsPlayerInRangeOfPoint(playerid,3,-1656.3706,1218.0201,7.2500))
{
SetPlayerCameraPos(playerid,-1573.7083,1192.3762,22.0449);
SetPlayerCameraLookAt(playerid,-1660.8774,1213.9800,6.8222);
new playername[20],string[128];
GetPlayerName(playerid,playername,sizeof(playername));
format(string,sizeof(string),"Willkommen %s.\nHier kannst du deine privaten Fahrzeuge kaufen.\nDrücken sie auf weiter um fortzufahren.",playername);
TogglePlayerControllable(0,1);
ShowPlayerDialog(playerid,DIALOG_CARSHOP2_MSG,DIALOG_STYLE_MSGBOX,"Autohaus Los Santos",string,"Weiter","Abbrechen");
}
else if(IsPlayerInRangeOfPoint(playerid,3,-1943.2330,276.1430,35.4739))
{
SetPlayerCameraPos(playerid,-2005.1416,314.6960,44.7150);
SetPlayerCameraLookAt(playerid,-1950.6490,275.0168,35.0673);
new playername[20],string[128];
GetPlayerName(playerid,playername,sizeof(playername));
format(string,sizeof(string),"Willkommen %s.\nHier kannst du deine privaten Fahrzeuge kaufen.\nDrücken sie auf weiter um fortzufahren.",playername);
TogglePlayerControllable(0,1);
ShowPlayerDialog(playerid,DIALOG_CARSHOP1_MSG,DIALOG_STYLE_MSGBOX,"Autohaus Los Santos",string,"Weiter","Abbrechen");
}
else return SendClientMessage(playerid,ROT,"Sie sind nicht an der Position!");
} -
if (strcmp(cmd, "/mask", true) == 0)
{
if(PlayerInfo[playerid][pMember] != 8 && PlayerInfo[playerid][pLeader] != 8) return SendClientMessage(playerid, COLOR_RED,"Du kannst dich nicht tarnen");
if(mask[playerid]==1)
{
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, true);
SendClientMessage(playerid, COLOR_WHITE, " Du setzt deine Maske ab!");
mask[playerid] = 0;
return 1;
}
else if(mask[playerid]==0)
{
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, false);
SendClientMessage(playerid, COLOR_WHITE, " Du setzt deine Maske auf!");
GetPlayerName(playerid, sendername, sizeof(sendername));
format (string, sizeof(string), "* %s setzt sich eine Maske auf!", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
mask[playerid] = 1;
return 1;
}
} -
Naja dürfte schwer werden. Ich weiss nicht ob man über Pawno auch datenbanken erstellen kann. Falls nicht müsstest du das immer manuell machen^^
-
Wofür genau ist das Feld zum Namen eingeben?
Und du könntest noch einen Button zum Starten von SAMP machen. Entweder aus der registry auslesen oder einfach per samp url. Und die Idee von Cedii mit CPU und RAM find ich gut. Dann würd ichs auch benutzen^^ So hat es für mich nichts was ich brauchen könnte. -
1. Wenn du schon ein tutorial machen willst mach es auch richtig. Zu Dialogen gehört auch OnDialogResponse und das haste net erklärt.
2. Warum arbeitest du mit format? macht keinen sinn bei dem was du da tust.
3. Why Windoes Server?
4. Wie WAIDI schon sagte muss man nicht zu jeder sache 100 Tutorials erstellen. Zumal deins auch noch schlecht ist. -
-
es muss
if (strcmp("/meinbefehl", cmdtext, true, 10) == 0)
sein und nicht
if(strcmp("/meinbefehl", cmdtext, true, 10, == 0)
oder
if(strcmp("/meinbefehl", cmdtext, true, 10, -
Das ist der sinn eines Streamers^^
Du kannst aber einfach manuell die stream distanz erhöhen.
CreateDynamicMapIcon(-1610.230346, 702.045166, 48.937500,30,-1, -1, -1,-1, 100.0)//Die 100.0 am ende soweit erhöhen wie du es anzeigen willst. -
-
Das passiert mir auch manchmal wenn ich vom Desktop wieder zurück ins game komme. Einfach ein paar mal ESC drücken, dann schmiert entweder dein game ab oder die Maus funzt wieder